package com.quan.admin.service.impl;

import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.quan.admin.entity.SysMessage;
import com.quan.admin.entity.SysMessageToUser;
import com.quan.admin.mapper.SysMessageMapper;
import com.quan.admin.service.SysMessageService;
import com.quan.admin.service.SysMessageToUserService;
import com.quan.commons.core.biz.support.MyBaseServiceImpl;
import com.quan.commons.core.utils.PageUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;


@Service
public class SysMessageServiceImpl extends MyBaseServiceImpl<SysMessageMapper, SysMessage> implements SysMessageService {

    @Autowired
	private SysMessageMapper mapper;

    @Autowired
    private SysMessageToUserService sysMessageToUserService;

	@Override
    public IPage<SysMessage> selectMyPage(PageUtils pageUtils, SysMessage entity) {
        Page<SysMessage> page = new Page<SysMessage>(pageUtils.getPage(), pageUtils.getLimit());

        // 排序
        super.handleSort(page, pageUtils);

        return this.mapper.selectMyPage(page, entity);
    }

    @Override
    public boolean updateMsgStatus(Long msgId, Long userId, Integer status, Integer type) {

	    // 广播消息
	    if(type == 1) {
            UpdateWrapper<SysMessage> updateWrapper = new UpdateWrapper<>();
            updateWrapper.set("status", status);
            updateWrapper.eq("id", msgId);
            return super.update(updateWrapper);

        } else if(type == 2) {
	        // 用户消息
            UpdateWrapper<SysMessageToUser> updateWrapper = new UpdateWrapper<SysMessageToUser>();
            updateWrapper.set("status", status);
            updateWrapper.eq("message_id", msgId);
            updateWrapper.eq("user_id", userId);
            return this.sysMessageToUserService.update(updateWrapper);
        }

	    return false;
    }

}